package com.xianyl.libsforandroid.utils;

import android.content.Context;

/**
 * dp、sp 转换为 px 的工具类
 * @author xianyl
 * @date 2015-3-2 下午9:37:10
 */
public class DisplayUtil {
	
	/**
	 * 将dp值转换为px值
	 * @param context
	 * @param dpValue
	 * @return
	 */
	public static float dpToPx(Context context, float dpValue) {
        if (context == null) {
            return -1;
        }
        return dpValue * ScreenUtils.getScreenDensity(context);
    }
	
	/**
	 * 将dp值转换为px值，转换成int
	 * {@link DisplayUtil#dpToPx(Context, float)}
	 */
	public static int dp2px(Context context, float dpValue) {
		return (int) (dpToPx(context,dpValue) + 0.5f);
	}
	
	
	/**
	 * 将px值转换为dp值
	 * @param context
	 * @param pxValue
	 * @return
	 */
    public static float pxToDp(Context context, float pxValue) {
        if (context == null) {
            return -1;
        }
        return pxValue / ScreenUtils.getScreenDensity(context);
    }
	
	
	/**
	 * 将px值转换为dp值
	 * {@link DisplayUtil#pxToDp(Context, float)}
	 */
	public static int px2dp(Context context, float pxValue) {
		return (int) (pxToDp(context, pxValue) + 0.5f);
	}

	
	
	/**
	 * 将px值转换为sp值
	 * @param context
	 * @param pxValue
	 * @return
	 */
    public static float pxToSp(Context context, float pxValue) {
        if (context == null) {
            return -1;
        }
        return pxValue / ScreenUtils.getScreenScaledDensity(context);
    }

	/**
	 * 将px值转换为sp值
	 * {@link DisplayUtil#pxToSp(Context, float)}
	 */
	public static int px2sp(Context context, float pxValue) {
		return (int) (pxToSp(context, pxValue) + 0.5f);
	}
	
	
	
	/**
	 * 将sp值转换为px值
	 * @param context
	 * @param spValue
	 * @return
	 */
    public static float spToPx(Context context, float spValue) {
        if (context == null) {
            return -1;
        }
        return spValue * ScreenUtils.getScreenScaledDensity(context);
    }

	/**
	 * 将sp值转换为px值
	 * {@link DisplayUtil#spToPx(Context, float)}
	 */
	public static int sp2px(Context context, float spValue) {
		return (int) (spToPx(context, spValue) + 0.5f);
	}
}